package cc.mcggdd.leah.boot.stock.service;

import cc.mcggdd.leah.boot.stock.model.entity.StockTransfer;
import cc.mcggdd.leah.boot.stock.model.form.StockTransferForm;
import cc.mcggdd.leah.boot.stock.model.query.StockTransferQuery;
import cc.mcggdd.leah.boot.stock.model.query.StockTransferStatisticQuery;
import cc.mcggdd.leah.boot.stock.model.vo.StockTransferMonthRollupVO;
import cc.mcggdd.leah.boot.stock.model.vo.StockTransferStatisticVO;
import cc.mcggdd.leah.boot.stock.model.vo.StockTransferVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.math.BigDecimal;
import java.util.List;

/**
 * 银证转账服务类
 *
 * @author zifeng
 * @since 2025-02-07 10:03
 */
public interface StockTransferService extends IService<StockTransfer> {

    /**
     *银证转账分页列表
     *
     * @return
     */
    IPage<StockTransferVO> getStockTransferPage(StockTransferQuery queryParams);

    /**
     * 银证转账月统计查询
     * @param queryStatisticParams
     * @return
     */
    List<StockTransferMonthRollupVO> getStockTransferMonthRollup(StockTransferStatisticQuery queryStatisticParams);
    
    /**
     * 银证转账统计查询
     * @param queryStatisticParams
     * @return
     */
    StockTransferStatisticVO getStockTransferStatistic(StockTransferStatisticQuery queryStatisticParams);

    /**
     * 获取银证转账表单数据
     *
     * @param id 银证转账ID
     * @return
     */
     StockTransferForm getStockTransferFormData(Long id);

    /**
     * 新增银证转账
     *
     * @param formData 银证转账表单对象
     * @return
     */
    boolean saveStockTransfer(StockTransferForm formData);

    /**
     * 修改银证转账
     *
     * @param id   银证转账ID
     * @param formData 银证转账表单对象
     * @return
     */
    boolean updateStockTransfer(Long id, StockTransferForm formData);

    /**
     * 删除银证转账
     *
     * @param ids 银证转账ID，多个以英文逗号(,)分割
     * @return
     */
    boolean deleteStockTransfers(String ids);

    BigDecimal getStockTransferTotalAmount();
}
